Skip to content

Upgrade Node.js to 18.20.8 LTS#4

Open
devin-ai-integration[bot] wants to merge 1 commit intomasterfrom
devin/1753786036-upgrade-nodejs
Open

Upgrade Node.js to 18.20.8 LTS#4
devin-ai-integration[bot] wants to merge 1 commit intomasterfrom
devin/1753786036-upgrade-nodejs

Conversation

@devin-ai-integration
Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration Bot commented Jul 29, 2025

Upgrade Node.js runtime from >=8.15.1 to 18.x LTS

Summary

This PR upgrades the Node.js runtime requirement from >=8.15.1 to 18.20.8 LTS for both bank-client and bank-server repositories. The upgrade includes necessary compatibility workarounds to handle breaking changes in Node.js 18.x, particularly around OpenSSL and webpack compilation.

Key Changes:

  • Updated .nvmrc files to specify Node.js 18.20.8
  • Updated package.json engines fields to require >=18.0.0
  • Updated documentation (README.md) to reflect new Node.js requirements
  • ⚠️ Disabled offline-plugin in webpack due to Node.js 18/20 compatibility issues
  • Added NODE_OPTIONS=--openssl-legacy-provider flag to build script for Webpack 4.x compatibility

Review & Testing Checklist for Human

🔴 HIGH PRIORITY - The following items require careful verification:

  • PWA Functionality: Verify that disabling offline-plugin doesn't break critical Progressive Web App features, or confirm it's acceptable to lose PWA capabilities
  • Production Build & Deployment: Test full production build and deployment process with Node.js 18.x to ensure no runtime issues
  • End-to-End Application Testing: Run complete test suites after resolving pre-existing linting issues (119+ errors found)
  • Legacy Provider Flag: Evaluate whether --openssl-legacy-provider is acceptable long-term or if dependencies should be updated instead

Recommended Test Plan:

  1. Set up local environment with Node.js 18.20.8
  2. Install dependencies and run builds for both repositories
  3. Start both applications and test core banking functionality
  4. Verify database connectivity and API endpoints work correctly
  5. Test any PWA features that were previously working
  6. Deploy to staging environment and run integration tests

Diagram

%%{ init : { "theme" : "default" }}%%
graph TB
    subgraph "bank-client"
        nvmrc1[".nvmrc<br/>18.20.8"]:::minor-edit
        pkg1["package.json<br/>engines + build script"]:::major-edit
        webpack1["webpack.prod.babel.js<br/>disabled offline-plugin"]:::major-edit
        readme1["README.md<br/>v18.20+ requirement"]:::minor-edit
    end
    
    subgraph "bank-server"
        nvmrc2[".nvmrc<br/>18.20.8"]:::minor-edit
        pkg2["package.json<br/>engines field"]:::major-edit
        readme2["README.md<br/>v18.20+ requirement"]:::minor-edit
    end
    
    subgraph "Runtime Environment"
        node["Node.js 18.20.8<br/>LTS"]:::context
        webpack_build["Webpack Build<br/>Process"]:::context
        pwa["PWA Features<br/>(offline-plugin)"]:::context
    end
    
    pkg1 -.->|"NODE_OPTIONS flag"| webpack_build
    webpack1 -.->|"disabled"| pwa
    nvmrc1 --> node
    nvmrc2 --> node
    
    subgraph Legend
        L1[Major Edit]:::major-edit
        L2[Minor Edit]:::minor-edit
        L3[Context/No Edit]:::context
    end

classDef major-edit fill:#90EE90
classDef minor-edit fill:#87CEEB
classDef context fill:#FFFFFF
Loading

Notes

  • Compatibility Workarounds: The --openssl-legacy-provider flag and disabled offline-plugin are temporary solutions. Consider updating to newer versions of Webpack and finding an offline-plugin alternative for long-term maintainability.
  • Dependency Versions: Current stack (React 16.13.1, Webpack 4.x, NestJS 7.x) may benefit from updates to versions with better Node.js 18+ support.
  • Testing Limitations: Full test suite verification was blocked by pre-existing linting issues (119+ errors). These should be resolved to ensure comprehensive testing.

Link to Devin run: https://app.devin.ai/sessions/6efa8cac6bb747139dd99524406c0b65
Requested by: Arthur Poon (@akkp-windsurf)

- Create .nvmrc file with 18.20.8
- Add engines field to package.json requiring Node.js >=18.0.0
- Update README.md system requirements to Node.js v18.20+
- Build and dependencies tested successfully with Node.js 18.20.8

Co-Authored-By: Arthur Poon <arthur.poon@windsurf.com>
@devin-ai-integration
Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants